## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10

General statistics

# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 49315
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535300 SRR13535304 SRR13535302 
##     5442647     5284506     6692745     6783939     3380080     5245017

Create DDS objects

# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 49315 with 0 metadata columns"
## [1] "DESeqDataSet object of length 13961 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
##             experimental_class_type                   regime         treatment
##                            <factor>                 <factor>       <character>
## SRR13535276                       A in space without gravity without nanoceria
## SRR13535278                       A in space without gravity without nanoceria
## SRR13535280                       A in space without gravity without nanoceria
## SRR13535300                       E                  on land without nanoceria
## SRR13535304                       E                  on land without nanoceria
## SRR13535302                       E                  on land without nanoceria

Sample-to-sample comparisons

# Transform data (blinded rlog)
rld <- get_transformed_data(dds)

PCA plot

pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
##                            PC1     PC2     PC3      PC4      PC5       PC6
## Standard deviation     42.7426 37.4963 27.3551 20.29918 19.16927 8.601e-14
## Proportion of Variance  0.3837  0.2953  0.1572  0.08655  0.07719 0.000e+00
## Cumulative Proportion   0.3837  0.6791  0.8363  0.92281  1.00000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
  geom_point() +
  geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
  scale_color_manual(values = colors_default) +
  scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap

pheatmap(
  cor(rld$matrix),
  annotation_col = as.data.frame(colData(dds)) %>% select(regime),
  color = brewer.pal(8, 'YlOrRd')
)

Wald test results

# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
##             experimental_class_type                   regime         treatment        sizeFactor
##                            <factor>                 <factor>       <character>         <numeric>
## SRR13535276                       A in space without gravity without nanoceria 0.983326898127425
## SRR13535278                       A in space without gravity without nanoceria  1.20126816782016
## SRR13535280                       A in space without gravity without nanoceria  1.11440765689284
## SRR13535300                       E                  on land without nanoceria  1.51592028243075
## SRR13535304                       E                  on land without nanoceria 0.599688743398815
## SRR13535302                       E                  on land without nanoceria 0.802283983223576
# Wald test results
res <- results(
  dds_full,
  contrast = c('experimental_class_type', condition, control),
  alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 13961 rows and 6 columns
##                            baseMean     log2FoldChange             lfcSE               stat             pvalue              padj
##                           <numeric>          <numeric>         <numeric>          <numeric>          <numeric>         <numeric>
## ENSMUSG00000025900 2.61497527977092  -4.96252421751868  2.55325078860222  -1.94361017714026 0.0519424776329694                NA
## ENSMUSG00000098104 6.17973004874648  -0.33987239137312 0.953764994701288  -0.35634814997542  0.721579854312876                NA
## ENSMUSG00000033845 78.7389250960824 -0.139776787060953 0.484080078114348 -0.288747241170158  0.772774808477305 0.919754141278944
## ENSMUSG00000102275 1.93535022630578 -0.248188373898006  1.75297446668176 -0.141581282908134  0.887410752060653                NA
## ENSMUSG00000025903 64.5755304394773 -0.218442860316403 0.653768545718189 -0.334128739822494  0.738282413869906 0.907746452475444
## ...                             ...                ...               ...                ...                ...               ...
## ENSMUSG00000061654 1.27223045415217   0.82592477969525   3.1845042730154  0.259357409783967  0.795359487690604                NA
## ENSMUSG00000079834 14.0996039438114   1.90361159520321  1.04533718702978   1.82105029728459 0.0685992115483928 0.344032440155812
## ENSMUSG00000095041 158.204029324634   0.14087153672037 0.612231200501589  0.230095324454154  0.818017697977464 0.938168604078944
## ENSMUSG00000063897 20.5239557083965 -0.458057808387909  0.85340306175572  -0.53674263535631  0.591445401224602 0.836773443790903
## ENSMUSG00000095742 7.49461231124379 -0.218512871147471  1.06290732214928 -0.205580361141573  0.837118719387324                NA
mcols(res)
## DataFrame with 6 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MLE): experimental_class_type A vs E
## lfcSE               results         standard error: experimental class type A vs E
## stat                results         Wald statistic: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res)
## 
## out of 13961 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 239, 1.7%
## LFC < 0 (down)     : 104, 0.74%
## outliers [1]       : 169, 1.2%
## low counts [2]     : 3519, 25%
## (mean count < 8)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 169 rows and 6 columns
##                            baseMean     log2FoldChange            lfcSE               stat    pvalue      padj
##                           <numeric>          <numeric>        <numeric>          <numeric> <numeric> <numeric>
## ENSMUSG00000067780 221.987320791496  -2.58250067154418 1.46924379482687  -1.75770738704974        NA        NA
## ENSMUSG00000025981 118.330916745571 -0.529114681877753 1.15228645724075 -0.459186757383894        NA        NA
## ENSMUSG00000038349 75.0130587145933  -4.20090784629918  1.2670521530176   -3.3154971847799        NA        NA
## ENSMUSG00000026024 42.2766653527863  -3.72064194556767 1.35025225558996   -2.7555161860789        NA        NA
## ENSMUSG00000085842 18.6638352368536   6.04611364896142  3.4761934668531   1.73929147114898        NA        NA
## ...                             ...                ...              ...                ...       ...       ...
## ENSMUSG00000005871 313.558334721303 -0.607218664256467 1.04276744988615  -0.58231455567851        NA        NA
## ENSMUSG00000044595 35.3300487472487   1.59557282754053  1.6716228739635  0.954505260960773        NA        NA
## ENSMUSG00000024597 269.224401081688  -1.42521060960639 1.09094789247257   -1.3063965927614        NA        NA
## ENSMUSG00000033417 193.435350548664  -1.25262638635326 1.07429741513002  -1.16599590459003        NA        NA
## ENSMUSG00000064340 120.809089287493  0.332759294173197 1.16820472186879  0.284846729296623        NA        NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 3519 rows and 6 columns
##                            baseMean     log2FoldChange             lfcSE               stat             pvalue      padj
##                           <numeric>          <numeric>         <numeric>          <numeric>          <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092  -4.96252421751868  2.55325078860222  -1.94361017714026 0.0519424776329694        NA
## ENSMUSG00000098104 6.17973004874648  -0.33987239137312 0.953764994701288  -0.35634814997542  0.721579854312876        NA
## ENSMUSG00000102275 1.93535022630578 -0.248188373898006  1.75297446668176 -0.141581282908134  0.887410752060653        NA
## ENSMUSG00000090031 4.72015366818405    2.1245193788572  1.34158979627185   1.58358343568282  0.113288545836657        NA
## ENSMUSG00000098201 1.51075135056325   1.80207939300779  1.85669850860225  0.970582668461567  0.331756140017339        NA
## ...                             ...                ...               ...                ...                ...       ...
## ENSMUSG00000065947 5.24532303154048  0.261969679752137  1.04998352551639  0.249498847730301  0.802974932105927        NA
## ENSMUSG00000064366 2.13604339327703 -0.772910994556363  2.41975524757873 -0.319417013489178   0.74941031112191        NA
## ENSMUSG00000064372  6.8623045792859 -0.401501479636074  1.08758740783686 -0.369167091070533  0.712003183607388        NA
## ENSMUSG00000061654 1.27223045415217   0.82592477969525   3.1845042730154  0.259357409783967  0.795359487690604        NA
## ENSMUSG00000095742 7.49461231124379 -0.218512871147471  1.06290732214928 -0.205580361141573  0.837118719387324        NA

Shrunken LFC results

plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
  dds_full,
  coef = str_c('experimental_class_type_', condition, '_vs_', control),
  type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 13961 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE             pvalue              padj
##                           <numeric>           <numeric>         <numeric>          <numeric>         <numeric>
## ENSMUSG00000025900 2.61497527977092  -0.130070165046024 0.514057374821996 0.0519424776329694                NA
## ENSMUSG00000098104 6.17973004874648  -0.071111304593757 0.441210143862636  0.721579854312876                NA
## ENSMUSG00000033845 78.7389250960824 -0.0702828863133241 0.346908974110517  0.772774808477305 0.919754141278944
## ENSMUSG00000102275 1.93535022630578 -0.0175173717430073 0.472510831706172  0.887410752060653                NA
## ENSMUSG00000025903 64.5755304394773 -0.0783318923381139 0.396772730740019  0.738282413869906 0.907746452475444
## ...                             ...                 ...               ...                ...               ...
## ENSMUSG00000061654 1.27223045415217  0.0194986220220197 0.484853846019169  0.795359487690604                NA
## ENSMUSG00000079834 14.0996039438114   0.414943722234983 0.670690726188883 0.0685992115483928 0.344032440155812
## ENSMUSG00000095041 158.204029324634   0.056308861955517 0.384739422710713  0.818017697977464 0.938168604078944
## ENSMUSG00000063897 20.5239557083965  -0.115423392208099 0.438228224109671  0.591445401224602 0.836773443790903
## ENSMUSG00000095742 7.49461231124379 -0.0384303203014102  0.44585071090712  0.837118719387324                NA
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MAP): experimental class type A vs E
## lfcSE               results           posterior SD: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
## 
## out of 13961 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 239, 1.7%
## LFC < 0 (down)     : 104, 0.74%
## outliers [1]       : 169, 1.2%
## low counts [2]     : 3519, 25%
## (mean count < 8)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 169 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE    pvalue      padj
##                           <numeric>           <numeric>         <numeric> <numeric> <numeric>
## ENSMUSG00000067780 221.987320791496  -0.241730977693639 0.561932359751804        NA        NA
## ENSMUSG00000025981 118.330916745571 -0.0799970361610996 0.459272428593947        NA        NA
## ENSMUSG00000038349 75.0130587145933   -3.20423347581797  1.58668667425245        NA        NA
## ENSMUSG00000026024 42.2766653527863  -0.466287425904363 0.878919607987184        NA        NA
## ENSMUSG00000085842 18.6638352368536  0.0641953569622817 0.495754979225337        NA        NA
## ...                             ...                 ...               ...       ...       ...
## ENSMUSG00000005871 313.558334721303  -0.109231903832901 0.458138215728882        NA        NA
## ENSMUSG00000044595 35.3300487472487   0.122220326008435 0.494985093144649        NA        NA
## ENSMUSG00000024597 269.224401081688  -0.252702992825214 0.531987334436254        NA        NA
## ENSMUSG00000033417 193.435350548664  -0.225314649745519  0.51185751589372        NA        NA
## ENSMUSG00000064340 120.809089287493   0.051449697149458 0.455209156466279        NA        NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 3519 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE             pvalue      padj
##                           <numeric>           <numeric>         <numeric>          <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092  -0.130070165046024 0.514057374821996 0.0519424776329694        NA
## ENSMUSG00000098104 6.17973004874648  -0.071111304593757 0.441210143862636  0.721579854312876        NA
## ENSMUSG00000102275 1.93535022630578 -0.0175173717430073 0.472510831706172  0.887410752060653        NA
## ENSMUSG00000090031 4.72015366818405    0.28577344000955 0.575076985428166  0.113288545836657        NA
## ENSMUSG00000098201 1.51075135056325   0.122791746087299 0.495431509538189  0.331756140017339        NA
## ...                             ...                 ...               ...                ...       ...
## ENSMUSG00000065947 5.24532303154048  0.0481425932652042 0.445980015261331  0.802974932105927        NA
## ENSMUSG00000064366 2.13604339327703 -0.0302867419065904 0.481739447131531   0.74941031112191        NA
## ENSMUSG00000064372  6.8623045792859 -0.0666771353265023 0.452667315844499  0.712003183607388        NA
## ENSMUSG00000061654 1.27223045415217  0.0194986220220197 0.484853846019169  0.795359487690604        NA
## ENSMUSG00000095742 7.49461231124379 -0.0384303203014102  0.44585071090712  0.837118719387324        NA

Visualizing results

Heatmaps

# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7], 
         color = brewer.pal(8, 'YlOrRd'), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         scale = 'row',
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7], 
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime), 
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

Volcano plots

# Unshrunken LFC
res_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

GSEA (all)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info

sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
##  [1] grid      parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] VennDiagram_1.6.20          futile.logger_1.4.3         fgsea_1.12.0                Rcpp_1.0.3                  RColorBrewer_1.1-2          pheatmap_1.0.12             DESeq2_1.26.0               SummarizedExperiment_1.16.1 DelayedArray_0.12.3         BiocParallel_1.20.1         matrixStats_0.57.0          Biobase_2.46.0              GenomicRanges_1.38.0        GenomeInfoDb_1.22.1         IRanges_2.20.2              S4Vectors_0.24.4            BiocGenerics_0.32.0         scales_1.1.1                forcats_0.4.0               stringr_1.4.0               dplyr_1.0.2                 purrr_0.3.3                 readr_1.3.1                 tidyr_1.0.0                 tibble_3.1.0                ggplot2_3.3.3               tidyverse_1.2.1            
## 
## loaded via a namespace (and not attached):
##  [1] colorspace_1.4-1       ellipsis_0.3.0         htmlTable_1.13.3       XVector_0.26.0         base64enc_0.1-3        rstudioapi_0.10        farver_2.1.0           bit64_0.9-7            mvtnorm_1.1-1          apeglm_1.8.0           AnnotationDbi_1.48.0   fansi_0.4.0            lubridate_1.7.4        xml2_1.2.2             splines_3.6.3          geneplotter_1.64.0     knitr_1.25             Formula_1.2-3          jsonlite_1.6           broom_0.7.5            annotate_1.64.0        cluster_2.1.0          png_0.1-7              compiler_3.6.3         httr_1.4.1             backports_1.1.5        assertthat_0.2.1       Matrix_1.2-18          cli_1.1.0              formatR_1.7            acepack_1.4.1          htmltools_0.5.1.1      tools_3.6.3            coda_0.19-3            gtable_0.3.0           glue_1.4.2             GenomeInfoDbData_1.2.2 fastmatch_1.1-0        bbmle_1.0.23.1         cellranger_1.1.0       jquerylib_0.1.3        vctrs_0.3.4            xfun_0.22              rvest_0.3.5            lifecycle_0.2.0        XML_3.99-0.3           MASS_7.3-51.5          zlibbioc_1.32.0        hms_0.5.2              lambda.r_1.2.4         yaml_2.2.0             memoise_1.1.0          gridExtra_2.3          emdbook_1.3.12         sass_0.3.1             bdsmatrix_1.3-4        rpart_4.1-15           latticeExtra_0.6-29    stringi_1.4.3          RSQLite_2.2.1          genefilter_1.68.0      checkmate_1.9.4        rlang_0.4.8            pkgconfig_2.0.3        bitops_1.0-6           evaluate_0.14          lattice_0.20-38        labeling_0.3           htmlwidgets_1.5.1      bit_1.1-15.1           tidyselect_1.1.0       plyr_1.8.4             magrittr_1.5           R6_2.4.0               generics_0.0.2         Hmisc_4.3-0            DBI_1.1.0              pillar_1.5.1           haven_2.2.0            foreign_0.8-75         withr_2.1.2            survival_3.1-8         RCurl_1.95-4.12        nnet_7.3-12            modelr_0.1.5           crayon_1.3.4           futile.options_1.0.1   utf8_1.1.4             rmarkdown_2.7          jpeg_0.1-8.1           locfit_1.5-9.4         readxl_1.3.1           data.table_1.13.6      blob_1.2.1             digest_0.6.27          xtable_1.8-4           numDeriv_2016.8-1.1    munsell_0.5.0          bslib_0.2.4